package com.cs.beneficios.web.action;
import com.cs.beneficios.business.entity.AuditoriaDAO;
import com.cs.beneficios.common.ConnectionFactory;
import java.sql.SQLException;
import java.util.Collection;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
//import org.apache.struts.action.ActionError;
//import org.apache.struts.action.ActionErrors;
import java.io.IOException;
import javax.servlet.ServletException;

public class GenerarReporteAuditoriaAction extends Action 
{
  /**
   * This is the main action called from the Struts framework.
   * @param mapping The ActionMapping used to select this instance.
   * @param form The optional ActionForm bean for this request.
   * @param request The HTTP Request we are processing.
   * @param response The HTTP Response we are processing.
   * @return 
   * @throws java.io.IOException
   * @throws javax.servlet.ServletException
   */
   
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
    String tabla = request.getParameter("tabla");
	String fechaCreaDesde = request.getParameter("fechaCreaDesde");
	String fechaCreaHasta = request.getParameter("fechaCreaHasta");
	String fechaModificaDesde = request.getParameter("fechaModificaDesde");
	String fechaModificaHasta = request.getParameter("fechaModificaHasta");
    String usuarioCrea = request.getParameter("usucreador");
    String usuarioModifica = request.getParameter("usumodificador");
    Collection reporte = null;
	ConnectionFactory cf = new ConnectionFactory();
	AuditoriaDAO objAuditDAO = new AuditoriaDAO(cf);
    if(tabla != null && !tabla.equalsIgnoreCase(""))
    {
      //ConnectionFactory cf = new ConnectionFactory("beneficios","beneficios");
	  
      try{
		reporte = objAuditDAO.getReporte(tabla, fechaCreaDesde, fechaModificaDesde, fechaCreaHasta, fechaModificaHasta, usuarioCrea, usuarioModifica);
      }catch(SQLException e)
      {
		System.err.println("/******** TDSUB - cwsub");
		e.printStackTrace();
		System.err.println("TDSSPE - cwsub ********/");
      }
    }
    
	HttpSession session = request.getSession();
	if(reporte != null && reporte.size() > 0){
	  session.setAttribute("reporte",reporte);
	  Long cantidad;
		try {
			cantidad = objAuditDAO.getCantidadRegistros(tabla, fechaCreaDesde, fechaModificaDesde, fechaCreaHasta, fechaModificaHasta, usuarioCrea, usuarioModifica);
			cf.closeConnection(objAuditDAO.getConn());
			request.setAttribute("Cantidad", cantidad);
		} catch (SQLException e) {
			System.err.println("/******** TDSUB - cwsub");
			e.printStackTrace();
			System.err.println("TDSSPE - cwsub ********/");
		}
	} else {
	  session.removeAttribute("reporte");
		try {
			cf.closeConnection(objAuditDAO.getConn());
		} catch (SQLException e) {
			System.err.println("/******** TDSUB - cwsub");
			e.printStackTrace();
			System.err.println("TDSSPE - cwsub ********/");
		}
	}
    request.setAttribute("tabla",tabla);
    return mapping.findForward("success");
  }
}